package cn.tedu.notice.service;

import cn.tedu.notice.pojo.dto.NoticeAddParam;
import cn.tedu.notice.pojo.dto.NoticeQuery;
import cn.tedu.notice.pojo.dto.NoticeUpdateParam;
import cn.tedu.notice.pojo.entity.Notice;
import cn.tedu.notice.pojo.vo.NoticeVO;
import cn.tedu.notice.pojo.vo.PageResult;

import java.util.List;

public interface NoticeService {
    /**
     * 新增公告
     *
     * @param noticeAddParam
     * @return
     */
    void insertNotice(NoticeAddParam noticeAddParam);

    /**
     * 查询公告
     * @param noticeQuery
     * @return
     */
    List<NoticeVO> selectNotice(NoticeQuery noticeQuery);


    /**
     * 查看公告详情
     * @param noticeId
     * @return
     */
    NoticeVO selectNoticeById(Integer noticeId) throws Exception;

    /**
     * 根据id，逻辑删除公告
     * @param id
     */
    void deleteNoticeById(Integer id);

    /**
     * 更新公告
     * @param noticeUpdateParam
     */
    void updateNotice(NoticeUpdateParam noticeUpdateParam);

    /**
     * 更新公告，并保存到草稿箱
     * @param noticeUpdateParam
     */
    void updateToDraftNotice(NoticeUpdateParam noticeUpdateParam);

    PageResult<NoticeVO> pageQuery(NoticeQuery noticeQuery);

    void updateNoticeStatus(Integer id);
}
